<?php
/**
 * MineAdmin is committed to providing solutions for quickly building web applications
 * Please view the LICENSE file that was distributed with this source code,
 * For the full copyright and license information.
 * Thank you very much for using MineAdmin.
 *
 * @Author X.Mo<root@imoi.cn>
 * @Link   https://gitee.com/xmo/MineAdmin
 */
declare(strict_types=1);

namespace App\Admin\Middleware;

use Webman\Http\Request;
use Webman\Http\Response;
use Webman\MiddlewareInterface;

class WsAuthMiddleware implements MiddlewareInterface {
    /**
     */
    public function process (Request $request, callable $handler): Response {
        $token = $request->get('token') ?? null;
        try {
            if ($token && user()->check($token)) {
                return $handler($request);
            } else {
                return response(t('jwt.validate_fail'));
            }
        } catch (\Exception $e) {
            return response($e->getMessage());
        }
    }
}